package com.ruoyi.system.service.impl;

import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.common.constant.UserConstants;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.system.mapper.UniversityMajorMapper;
import com.ruoyi.system.domain.UniversityMajor;
import com.ruoyi.system.service.IUniversityMajorService;

/**
 * 大学专业关联 服务层实现
 * 
 * @author ruoyi
 */
@Service
public class UniversityMajorServiceImpl implements IUniversityMajorService
{
    @Autowired
    private UniversityMajorMapper universityMajorMapper;

    /**
     * 查询大学专业关联列表
     * 
     * @param universityMajor 大学专业关联信息
     * @return 大学专业关联集合
     */
    @Override
    public List<UniversityMajor> selectUniversityMajorList(UniversityMajor universityMajor)
    {
        return universityMajorMapper.selectUniversityMajorList(universityMajor);
    }

    /**
     * 查询所有大学专业关联
     * 
     * @return 大学专业关联列表
     */
    @Override
    public List<UniversityMajor> selectUniversityMajorAll()
    {
        return universityMajorMapper.selectUniversityMajorAll();
    }

    /**
     * 通过关联ID查询大学专业关联信息
     * 
     * @param id 关联ID
     * @return 大学专业关联对象信息
     */
    @Override
    public UniversityMajor selectUniversityMajorById(Long id)
    {
        return universityMajorMapper.selectUniversityMajorById(id);
    }

    /**
     * 通过大学ID查询专业列表
     * 
     * @param universityId 大学ID
     * @return 专业列表
     */
    @Override
    public List<UniversityMajor> selectMajorsByUniversityId(Long universityId)
    {
        return universityMajorMapper.selectMajorsByUniversityId(universityId);
    }

    /**
     * 通过专业ID查询大学列表
     * 
     * @param majorId 专业ID
     * @return 大学列表
     */
    @Override
    public List<UniversityMajor> selectUniversitiesByMajorId(Long majorId)
    {
        return universityMajorMapper.selectUniversitiesByMajorId(majorId);
    }

    /**
     * 校验大学专业关联是否唯一
     * 
     * @param universityMajor 大学专业关联信息
     * @return 结果
     */
    @Override
    public boolean checkUniversityMajorUnique(UniversityMajor universityMajor)
    {
        Long id = StringUtils.isNull(universityMajor.getId()) ? -1L : universityMajor.getId();
        UniversityMajor info = universityMajorMapper.checkUniversityMajorUnique(universityMajor);
        if (StringUtils.isNotNull(info) && info.getId().longValue() != id.longValue())
        {
            return UserConstants.NOT_UNIQUE;
        }
        return UserConstants.UNIQUE;
    }

    /**
     * 新增保存大学专业关联信息
     * 
     * @param universityMajor 大学专业关联信息
     * @return 结果
     */
    @Override
    public int insertUniversityMajor(UniversityMajor universityMajor)
    {
        return universityMajorMapper.insertUniversityMajor(universityMajor);
    }

    /**
     * 修改保存大学专业关联信息
     * 
     * @param universityMajor 大学专业关联信息
     * @return 结果
     */
    @Override
    public int updateUniversityMajor(UniversityMajor universityMajor)
    {
        return universityMajorMapper.updateUniversityMajor(universityMajor);
    }

    /**
     * 删除大学专业关联信息
     * 
     * @param id 关联ID
     * @return 结果
     */
    @Override
    public int deleteUniversityMajorById(Long id)
    {
        return universityMajorMapper.deleteUniversityMajorById(id);
    }

    /**
     * 批量删除大学专业关联信息
     * 
     * @param ids 需要删除的关联ID
     * @return 结果
     */
    @Override
    public int deleteUniversityMajorByIds(Long[] ids)
    {
        return universityMajorMapper.deleteUniversityMajorByIds(ids);
    }
} 